package com.centersoft.flowable.core.dto;

import com.centersoft.flowable.core.model.TaskComment;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import org.flowable.engine.history.HistoricActivityInstance;
import org.flowable.engine.history.HistoricProcessInstance;
import org.flowable.engine.repository.ProcessDefinition;
import org.flowable.task.api.Task;
import org.flowable.task.api.history.HistoricTaskInstance;

import java.util.Date;

@Data
public class FlowDto {
  private static final long serialVersionUID = 1L;

  private String taskId; // 任务编号
  private String taskName; // 任务名称
  private String taskDefKey; // 任务定义Key（任务环节标识）

  private String formType; // 表单类型
  private boolean formReadOnly; // 表单只读
  private boolean formAssigneeOnly; // 表单是否可以指定下一个

  private String procInsId; // 流程实例ID
  private String procDefId; // 流程定义ID
  private String procDefKey; // 流程定义Key（流程定义标识）

  private String businessTable; // 业务绑定Table
  private String businessId; // 业务绑定ID

  private String title; // 任务标题

  private boolean isNextGatewaty; // 下一个任务节点是否是网关

  @JsonIgnore private Task task; // 任务对象
  @JsonIgnore private ProcessDefinition procDef; // 流程定义对象
  //    @JsonIgnore
  //    private ProcessInstance procIns;    // 流程实例对象
  private HistoricProcessInstance hisProcIns; // 历史流程实例对象
  private HistoricTaskInstance histTask; // 历史任务
  private HistoricActivityInstance histIns; // 历史活动任务

  private String assignee; // 任务执行人编号
  private String assigneeName; // 任务执行人名称

  private TaskComment comment;
  //	private Variable taskVars; 	// 流程任务变量

  private Date beginDate; // 开始查询日期
  private Date endDate; // 结束查询日期



  private String formUrl; // 流程表单地址

  private String status; // 流程状态




}
